Optimizing header file include directives
نویسنده
چکیده
A number of widely used programming languages use lexically included files as a way to share and encapsulate declarations, definitions, code, and data. As the code evolves files included in a compilation unit are often no longer required, yet locating and removing them is a haphazard operation, which is therefore neglected. The difficulty of reasoning about included files stems primarily from the fact that the definition and use of macros complicates the notions of scope and of identifier boundaries. By defining four successively refined identifier equivalence classes we can accurately derive dependencies between identifiers. A mapping of those dependencies on a relationship graph between included files can then be used to determine included files that are not required in a given compilation unit and can be safely removed. We validate our approach through a number of experiments on numerous large production-systems.
منابع مشابه
Comparative Performance Analysis of Fast Fourier Transform on ARM and DSP Core Using Standard Benchmarks
This paper focuses on a sort of benchmarking and is intended to compare the performance of ARM core and DSP core using some Standard Benchmark or program. First a Standard Benchmark “Dhrystone” was used, which is an open source benchmark. It was tailored to be run on these cores. Later it was optimized using hardware and compiler options. As this benchmark was targeted for non-floating point sy...
متن کاملAn Investigation into the Connectivity Properties of Source-Header Dependency Graphs
A modularization is a partitioning of a software system into components based on a variety of criteria, each depending on the clustering approach and desired level of abstraction. Source-header dependency graphs are bipartite graphs that are formed by flattening include file dependencies and enumerating source file to header file dependencies. In this paper, we describe an approach for identify...
متن کاملRFC 3841 Caller Preferences for SIP
This document describes a set of extensions to the Session Initiation Protocol (SIP) which allow a caller to express preferences about request handling in servers. These preferences include the ability to select which Uniform Resource Identifiers (URI) a request gets routed to, and to specify certain request handling directives in proxies and redirect servers. It does so by defining three new r...
متن کاملBinary Compatibility of Shared Libraries Implemented in C++ on GNU/Linux Systems
A shared library is a file that contains library code and data in binary form. Application built against the library references the data via symbols and the contents of what’s being referenced get known only during the application startup. Library is shipped with header file(s) the program
متن کاملInternet Draft SIP Caller Prefs
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as refer...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Journal of Software Maintenance
دوره 21 شماره
صفحات -
تاریخ انتشار 2009